<?php
    session_start();
    require_once("dbConnect.inc");
    require_once("errorhandler.php");
    set_error_handler("error_msg");
    $bloggers = array();
    
    $welkomsBericht = '<h1>Welkom!</h1><BR /><h2>Klik in het linker menu op een naam om de berichten van deze blogger'
            . ' te lezen.<BR /> Als je zelf berichten wilt schrijven kun je in het rechter menu op inloggen klikken.<BR /><BR />'
            . 'Heb je nog geen account? dan vind je op de inlog pagina een <a href="inschrijf.php">link</a> om je te registreren.</h2>';
    
    $databaseConnection = mysqli_connect($hostname, $username, $password, $database);
    
    if (mysqli_connect_errno()) {
        trigger_error("Het is niet gelukt om verbinding te maken met de database.", E_USER_ERROR);
        exit();
    }
    
    // Linker menu
    $qbloggers = "Select id, naam from users where admin <> 1 order by naam asc";
    $queryResult = mysqli_query($databaseConnection, $qbloggers);

    if (!$queryResult) {
        trigger_error("Het is niet gelukt om de lijst met bloggers op halen uit de database.", E_USER_ERROR);
        exit();
    }

    if (mysqli_num_rows($queryResult) > 0) {
        $leftMenu = "";
        while ($row = mysqli_fetch_array($queryResult, MYSQLI_ASSOC)) {
            $bloggers[$row["id"]] = $row["naam"];
            $leftMenu .= '<a href="index.php?id='. $row["id"] . '">' . $row["naam"] . "</a><BR />";
        }
    } else {
        $leftMenu = "Er zijn nog geen bloggers";
    }
    
    mysqli_free_result($queryResult);
    
    // Rechter menu
    $rightMenu = '<BR><INPUT TYPE=button onClick="location.href=\'index.php\'" value=\'Home\'><BR /><BR />';
    if (isset($_SESSION["userid"])) {
        $rightMenu = "<B>" . $_SESSION["username"] . "</B><BR /><BR />";
        $rightMenu .= '<INPUT TYPE=button onClick="location.href=\'post.php\'" value="Nieuw bericht"><BR /><BR />' . 
                '<INPUT TYPE="submit" value="Logout" name="logout"/><BR />';
    } else {
        $rightMenu .= '<INPUT TYPE="submit" value="Login" name="login"/>';
    }
    
    // Content
    if (isset($_GET["id"])) {
        $_SESSION["blogid"] = $_GET["id"];
        // Er is een blogger geselecteerd in het linker menu
        if (isset($_SESSION["userid"])) {
            // Er is een gebruiker aangemeld
            if (isset($_SESSION["admin"]) AND $_SESSION["admin"] == 1) {
                // De aangemelde gebruiker is admin
                $content = showMessageListWithEdit($_GET["id"]);
            } else {
                // De aangemelde gebruiker is géén admin
                if ($_GET["id"] == $_SESSION["userid"]) {
                    // De aangemelde gebruiker is dezelfde als de geselecteerde blogger
                    $content = showMessageListWithEdit($_GET["id"]);
                } else {
                    // De aangemelde gebruiker is niet dezelfde als de geselecteerde blogger
                    $content = showMessages($_GET["id"]);
                }
            }
        } else {
            // Er is géén gebruiker aangemeld maar wel een blogger geselecteerd
            $content = showMessages($_GET["id"]);
        }
    } else {
        // Er is géén blogger geselecteerd in het linker menu
        $content = $welkomsBericht;
    }
    
    // Retourneert berichten van geselecteerde blogger zonder edit/delete optie
    function showMessages($bloggerid) {
        global $databaseConnection;
        global $bloggers;
        
        $qMessages = "SELECT users.naam, onderwerp, bericht, datum FROM posts" . 
            " join users on users.id = posts.userid where userid = $bloggerid order by datum desc";
        
        $queryResult = mysqli_query($databaseConnection, $qMessages);

        if (!$queryResult) {
            trigger_error("Het is niet gelukt om de berichten op halen uit de database.", E_USER_ERROR);
            exit();
        }
        
        if (mysqli_num_rows($queryResult) == 0) {
            $temp = "<P>Er zijn geen berichten.</P><BR />";
            $temp .= "<hr>";
        } else {
            $temp = "<hr>";
            while ($row = mysqli_fetch_array($queryResult, MYSQLI_ASSOC)) {
                $temp .= '<DIV class = "subject"><B>' . $row["onderwerp"] . "</B></DIV>";
                $temp .= '<DIV class = "date">' . date('d-m-Y', strtotime($row["datum"]) ) . "</DIV><BR /><BR />";
                $temp .= '<DIV class = "message">' . nl2br($row["bericht"] . "</DIV><BR />");
                $temp .= "<hr>";
            }
        }
        
        $html = "<P><h1>" . $bloggers[$bloggerid] . "</h1></P><BR />" . $temp;

        mysqli_free_result($queryResult);
        mysqli_close($databaseConnection);
        return $html;
    }
    
    // Retourneert lijst van berichten van geselecteerde blogger met edit/delete optie
    function showMessageListWithEdit($bloggerid) {
        global $databaseConnection;
        global $bloggers;
        
        $qMessages = "SELECT posts.id, users.naam, onderwerp, datum FROM posts" . 
            " join users on users.id = posts.userid where userid = $bloggerid order by datum desc";
        
        $queryResult = mysqli_query($databaseConnection, $qMessages);

        if (!$queryResult) {
            trigger_error("Het is niet gelukt om de berichten op halen uit de database.", E_USER_ERROR);
            exit();
        }
        
        if (mysqli_num_rows($queryResult) == 0) {
            $temp = "<P>Er zijn geen berichten.</P><BR />";
            $temp .= "<hr>";
        } else {
            $temp = "<hr>";
            while ($row = mysqli_fetch_array($queryResult, MYSQLI_ASSOC)) {
                $temp .= '<DIV class = "subject">' . $row["onderwerp"] . "</DIV>";
                $temp .= '<DIV class = "date">' .  date('d-m-Y', strtotime($row["datum"]) ) . "&nbsp&nbsp&nbsp";
                $temp .= '<a href="post.php?id='. $row["id"] . '">Edit</a>&nbsp&nbsp&nbsp';
                $temp .= '<a href="post.php?id='. $row["id"] . '&delete=yes">Delete</a></DIV><BR />';
                $temp .= "<hr>";
            }
        }
        
        $html = "<P><h1>" . $bloggers[$bloggerid] . "</h1></P><BR />" . $temp;
        
        mysqli_free_result($queryResult);
        mysqli_close($databaseConnection);
        return $html;
    }
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/
    TR/html4/strict.dtd">
<HTML>
    <HEAD>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
        <title>Inzendopdracht 051R7</title>
    </HEAD>
    <BODY>
        <FORM ACTION="loginout.php" METHOD="POST">
            <DIV id="container">
                <DIV id="header">
                    <h1>Inzendopdracht 051R7</h1>
                </DIV>
                <DIV id="leftBar">
                    <B>Bloggers:</B><BR />
                    <?php print($leftMenu); ?>
                </DIV>
                <DIV id="content">
                    <?php print($content); ?>
                </DIV>
                <DIV id="rightBar">
                    <?php echo $rightMenu; ?><BR />
                </DIV>
            </DIV>
        </FORM>
    </BODY>
</HTML>